#多个.c文件生成一个可执行程序
OUT := client #输出
# 定义一个srcs变量, 来代指: 使用wildcard函数获取当前目录下的所有.c文件
srcs := $(wildcard *.c)
# 定义一个objs变量, 来代指: 使用patsubst函数讲srcs中所有的.c文件拓展名替换成.o文件
OBJS := $(patsubst %.c,%.o, $(srcs)) #生成目标文件所需>

COM_OP := -Wall -g #编译选项

# mian文件依赖于所有的objs文件
# 把所有依赖项($^) 指定输出到当前目标(-o $@)(即:mian)
$(OUT):$(OBJS) #等价于main: xxxx.o
	gcc $^ -o $@ -lpthread

# 编译 ' -c $^ '(源依赖项.c文件)  输出到 ' -o $@ '(目标.o)文件
%.o : %.c
	gcc -c $< -o $@ $(COM_OP)

.PHONY: clean rebuild
	
clean:
	$(RM) $(OUT) $(OBJS)

rebuild: clean client
